Searching a file system requires iterating through a directory hierarchy to determine if elements of the file system such as a file or directory matching a search query are present. Searching a live file system takes time, and during that time the hierarchy of the file system may change. In order to prevent file system modification while conducting a search, it must be kept in a read-only state while conducting the search. Performing a coherent search of a live file system requires that the file system remain static during the search.
FIG. 1 is a diagram illustrating a live file system search 100. A search begins at root node 101 and progresses down, moving from left to right. Home directory 103 is searched, including user directory 109. Next, documents directory 105 is searched. While directory 105 is being searched, games directory 107 is relocated 111 from its position directly under root 101 into user directory 109.
When the search of documents directory 105 is finished, the search is finished, since by the time the search reaches point 113, no files or directories are present. As a result, games directory 107 is not searched.